home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / plugins / promotestatus / promote.pyo (.txt) < prev   
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  55 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from common.statusmessage import StatusMessage
  5. from common import profile, pref
  6. import platform
  7. import wx
  8. from gui import skin
  9. from logging import getLogger
  10. log = getLogger('promote_status')
  11. PROMOTE_STATUS_PREF = 'plugins.promotestatus.initial_status'
  12. PROMOTE_STATUS_STRING = u'I use Digsby to manage IM + Email + Social Networks - http://www.digsby.com'
  13.  
  14. class PromoteStatus(StatusMessage):
  15.     __slots__ = StatusMessage.__slots__[:]
  16.     __slots__.remove('message')
  17.     edit_toggle = False
  18.     
  19.     def __init__(self, message = None, status = None, editable = None, **kws):
  20.         None(StatusMessage.__init__, self = 'title', Promote Digsby! = 'status' if status is None else status, message = None, editable = False)
  21.  
  22.     message = property((lambda self: PROMOTE_STATUS_STRING), (lambda self, val: pass))
  23.     
  24.     def icon(self):
  25.         return skin.get('statusicons.promote', None)
  26.  
  27.     icon = property(icon)
  28.  
  29.  
  30. def status_factory():
  31.     start_status = pref(PROMOTE_STATUS_PREF, 'available')
  32.     if start_status == 'idle':
  33.         start_status = 'available'
  34.     
  35.     return PromoteStatus(status = start_status)
  36.  
  37.  
  38. def on_before_status_change(status):
  39.     log.info('on_status_change')
  40.     if isinstance(status, PromoteStatus):
  41.         s = status.status
  42.         if pref(PROMOTE_STATUS_PREF, type = str, default = 'available') != s:
  43.             profile.prefs.__setitem__(PROMOTE_STATUS_PREF, s.lower())
  44.         
  45.     
  46.     return status
  47.  
  48.  
  49. def initialize():
  50.     Hook = Hook
  51.     import peak.util.plugins
  52.     Hook('digsby.im.statusmessages', 'promote').register(status_factory)
  53.     Hook('digsby.im.statusmessages.set.pre', 'promote').register(on_before_status_change)
  54.  
  55.